/*
 * B.h
 *
 *  Created on: 2021年11月24日
 *      Author: l
 */

#ifndef B_H_
#define B_H_

#include "gpio.h"
#include "year_month_day.h"

//
//#define checkP(Time)  (Time==80?1:0)
//#define check1(Time)  (Time==50?1:0)
//#define check0(Time)  (Time==20?1:0)


#define checkP(Time)  ((Time>50&&Time<=80)?1:0)
#define check1(Time)  ((Time>20&&Time<=50)?1:0)
#define check0(Time)  ((Time>10&&Time<=20)?1:0)

/*
 0码  1--->2ms   0---->8ms
 1码  1--->5ms   0---->5ms
 P码  1--->8ms   0---->2ms

以P码为新码元的起始位
 p0-p9,10个码元,每个码元10个码，P码开始;
 */
//码元
struct IRGB_Code_Dollar
{
				//索引计数,100个
				//位置识别标志
	int High_time[10];		//码字
			//参考标志
};
//判断是否是1帧的开始，两个码都是P码为新帧开始


struct IRGB_Time_Type
{
	int year;
	int month;
	int day;
	int days;//总天数
	int hour;
	int min;
	int sec;
};

int IRGB_Rising_Num;//上升沿计数  0开始,99结束,共100个
int IRGB_Flag;
extern struct IRGB_Time_Type IRGB_Time;

int IRGB_Rising_Time_Start;
int IRGB_Rising_Time_End;

int P_1_0(int high_time);
void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin);//上升沿中断回调
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin);//下降沿中断回调

void deal_B_Time(int IRGB_Rising_Time[],int num);
int my2_10(int pData[],int len);//2进制数转10进制数
#endif /* B_H_ */
